Biblioshop - domeinmodel
De bouwstenen van een domeinmodel
Het domeinmodel bestaat uit conceptuele klassen of entiteiten. Zoín klasse of entiteit representeert een concept of iets tastbaars (bijvoorbeeld een artikel) uit de werkelijkheid. Denk bijvoorbeeld aan de verkoop van een artikel. Een object is een zelfstandig iets uit de werkelijkheid dat van belang is voor het te ontwerpen systeem. Objecten met gelijksoortige eigenschappen, bijvoorbeeld artikelobjecten, kunnen we beschouwen als exemplaren - ook wel instanties genoemd - van een klasse of entiteit Artikel.
Een klasse of entiteit wordt nader bepaald door zijn attributen die de eigenschappen van een klasse of entiteit vastleggen. Zoals gezegd representeren klassen betekenisvolle dingen of concepten uit de werkelijkheid. Een klasse wordt gekarakteriseerd door zijn naam. In het algemeen bezitten klassen attributen die eigenschappen van zo'n klasse beschrijven. Attributen hebben een naam en een gegevenstype. Hierbij worden zogenaamde primitieve gegevenstypen gebruikt zoals gehele getallen, gebroken getallen, tekst, datums, tijdstippen en booleans.
In en domeinmodel worden de klassen of entiteiten door associaties of verwantschappen met elkaar. Verwantschappen kan je meestal uitdrukken met een werkwoord. Als Person, Book en Order entiteiten zijn dan zijn wat volgt verwantschappen (in het vet):
- een boek kan besteld worden;
een bestelling bevat 1 of meerdere boeken; - een persoon kan 1 of meerdere boeken bestellen;
- een bestelling bevat 1 of meerdere boeken;
Bedenk wel dat hèt domeinmodel niet 'echt' bestaat. Een domeinmodel bevat immers altijd interpretaties en beslissingen. Een andere ontwerper kan mogelijk een andere interpretatie geven en andere beslissingen nemen. Interpretatieverschillen kunnen door een goede communicatie met opdrachtgever en gebruikers wellicht verminderd worden.
Werkwijze
Een domeinmodel is de beschrijving van alles uit het domein dat voor het systeem van belang kan zijn. Dit is ruimer dan het toewerken naar een relationele database. In een domeinmodel worden ook klassen opgenomen die overeenkomen met elementen uit de context en waarvan het helemaal niet duidelijk is of die ooit een tegenhanger in het uiteindelijke systeem zullen krijgen. Denk bij domeinmodel dus vooral niet alleen aan een datamodel!
Het domeinmodel dient als basis voor het uitwerken van: